7F0503DC:	84F0C	08 weapon collection subroutine
SW	R0,0044 (SP)	;SP+44=0
LB	A0,0080 (V1)	;A0=item type
JAL	7F04F810	;sets sound effects on weapon type A0 collection
SW	V1,0048 (SP)	;SP+48=p->weapon
LW	T5,0048 (SP)	;T5=p->weapon
ADDIU	AT,R0,001D
LB	A0,0080 (T5)	;A0=item type
BNEL	A0,AT,7F050414	;branch if not 1D: remote mines
ADDIU	AT,R0,0058
//7F050400:	add detonator when remote mines collected
JAL	7F08C488	;Add item A0 to inventory
ADDIU	A0,R0,001E	;A0=1E: detonator
BEQ	R0,R0,7F050428
LW	T6,006C (SP)
//7F050410:	handle flag
ADDIU	AT,R0,0058
BNE	A0,AT,7F050424	;branch if not 58: token (flag)
ADDIU	A1,R0,0058	;A1=58: token
JAL	7F05D914	;set item A1 in hand A0
OR	A0,R0,R0	;A0=0: right hand
//7F050424:
LW	T6,006C (SP)	;T6=SP+6C: probably also p->weapon
LW	T9,0048 (SP)	;T9=p->weapon
LW	T7,0064 (T6)
ANDI	T8,T7,0400
BEQ	T8,R0,7F0504A4	;branch if flag 0x400 not set
NOP
LB	T0,0080 (T9)	;T0=item type
SLTI	AT,T0,0021	;TRUE if item Unarmed - Tank
BEQL	AT,R0,7F050458	;branch if gadget
LW	T1,0074 (SP)
JAL	7F08C764
LW	A0,0070 (SP)	;A0=SP+70: 
//7F050454:
LW	T1,0074 (SP)	;T1=SP+74: 
BEQL	T1,R0,7F050498	;branch if not set
LW	T4,0048 (SP)
JAL	7F08D95C
LW	A0,006C (SP)	;A0=SP+6C: p->weapon
BEQ	V0,R0,7F050480
OR	A0,V0,R0
JAL	7F08A3C8
NOP
BEQ	R0,R0,7F050490
ADDIU	T3,R0,0001
//7F050480:
LW	T2,0048 (SP)
JAL	7F050224
LB	A0,0080 (T2)
ADDIU	T3,R0,0001
//7F050490:
SW	T3,0044 (SP)
LW	T4,0048 (SP)	;T4=p->item type
ADDIU	V1,R0,0004
BEQ	R0,R0,7F050510
LB	A0,0080 (T4)
//7F0504A4:
JAL	7F08C764
LW	A0,0070 (SP)
BEQ	V0,R0,7F0504B8
ADDIU	T5,R0,0001
SW	T5,0044 (SP)
//7F0504B8:
LW	T6,0074 (SP)
LW	T7,0048 (SP)
BEQL	T6,R0,7F050508
LW	T1,0048 (SP)
JAL	7F08D9A4
LB	A0,0080 (T7)
BEQ	V0,R0,7F0504EC
OR	A0,V0,R0
ADDIU	T8,R0,0001
JAL	7F08A3C8
SW	T8,0044 (SP)
BEQ	R0,R0,7F050508
LW	T1,0048 (SP)
//7F0504EC:	display weapon name on collection
LW	T9,0044 (SP)
LW	T0,0048 (SP)
BEQL	T9,R0,7F050508
LW	T1,0048 (SP)
JAL	7F050224	;display text for collecting weapon A0 in lower left
LB	A0,0080 (T0)	;A0=item type
//7F050504:
LW	T1,0048 (SP)
ADDIU	V1,R0,0001
LB	A0,0080 (T1)	;A0=item type
JAL	7F06942C
SW	V1,0068 (SP)
LW	V1,0068 (SP)
BEQ	V0,R0,7F050674
OR	S0,V0,R0
LW	A0,0048 (SP)
JAL	7F04FC4C	;V0=#ammo collected from item
SW	V1,0068 (SP)
LW	V1,0068 (SP)
BLEZ	V0,7F050674	;branch if stupid total
SW	V0,0034 (SP)	;SP+34=#ammo
OR	A0,S0,R0
JAL	7F069240
SW	V1,0068 (SP)
SW	V0,0024 (SP)
JAL	7F0692D4
OR	A0,S0,R0
LW	T2,0024 (SP)
LW	V1,0068 (SP)
OR	A0,S0,R0
SLT	AT,T2,V0
BEQL	AT,R0,7F050678
ADDIU	AT,R0,0001
JAL	7F069240
SW	V1,0068 (SP)
LW	T3,0034 (SP)
OR	A0,S0,R0
JAL	7F069130
ADDU	A1,V0,T3
LW	T4,0044 (SP)
LW	V1,0068 (SP)
LW	T5,0074 (SP)
BNEL	T4,R0,7F050678
ADDIU	AT,R0,0001
BEQ	T5,R0,7F050674
OR	A0,S0,R0
LW	A1,0034 (SP)
JAL	7F04F9F8
SW	V1,0068 (SP)
BEQ	R0,R0,7F050674
LW	V1,0068 (SP)
